package com.ruoyi.passengers.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 乘客钱包对象 passenger_wallets
 * 
 * @author ruoyi
 * @date 2025-08-17
 */
public class PassengerWallets extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 钱包ID */
    private Long id;

    /** 关联的乘客ID */
    @Excel(name = "关联的乘客ID")
    private Long passengerId;

    /** 可用余额（单位：元） */
    @Excel(name = "可用余额", readConverterExp = "单=位：元")
    private BigDecimal availableBalance;

    /** 冻结余额（单位：元） */
    @Excel(name = "冻结余额", readConverterExp = "单=位：元")
    private BigDecimal frozenBalance;

    /** 可开发票金额（单位：元） */
    @Excel(name = "可开发票金额", readConverterExp = "单=位：元")
    private BigDecimal invoiceableAmount;

    /** 行程未开票金额（单位：元） */
    @Excel(name = "行程未开票金额", readConverterExp = "单=位：元")
    private BigDecimal unInvoicedTripAmount;

    /** 最后更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastUpdateTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setPassengerId(Long passengerId) 
    {
        this.passengerId = passengerId;
    }

    public Long getPassengerId() 
    {
        return passengerId;
    }

    public void setAvailableBalance(BigDecimal availableBalance) 
    {
        this.availableBalance = availableBalance;
    }

    public BigDecimal getAvailableBalance() 
    {
        return availableBalance;
    }

    public void setFrozenBalance(BigDecimal frozenBalance) 
    {
        this.frozenBalance = frozenBalance;
    }

    public BigDecimal getFrozenBalance() 
    {
        return frozenBalance;
    }

    public void setInvoiceableAmount(BigDecimal invoiceableAmount) 
    {
        this.invoiceableAmount = invoiceableAmount;
    }

    public BigDecimal getInvoiceableAmount() 
    {
        return invoiceableAmount;
    }

    public void setUnInvoicedTripAmount(BigDecimal unInvoicedTripAmount) 
    {
        this.unInvoicedTripAmount = unInvoicedTripAmount;
    }

    public BigDecimal getUnInvoicedTripAmount() 
    {
        return unInvoicedTripAmount;
    }

    public void setLastUpdateTime(Date lastUpdateTime) 
    {
        this.lastUpdateTime = lastUpdateTime;
    }

    public Date getLastUpdateTime() 
    {
        return lastUpdateTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("passengerId", getPassengerId())
            .append("availableBalance", getAvailableBalance())
            .append("frozenBalance", getFrozenBalance())
            .append("invoiceableAmount", getInvoiceableAmount())
            .append("unInvoicedTripAmount", getUnInvoicedTripAmount())
            .append("createTime", getCreateTime())
            .append("lastUpdateTime", getLastUpdateTime())
            .toString();
    }
}
